1. Field of the Invention
The present invention relates to an improved data processing system and, in particular, to a method and system for input/output in a data processing system. Still more particularly, the present invention provides a method and system for input/output port configuring and use.
2. Description of Related Art
For decades, IBM®-compatible personal computers (PCs) and derivative designs have provided two RS-232 serial ports as standard input/output ports. Initially, a keyboard was connected to one of these ports, leaving one port available for another device, such as a modem. When the mouse became popular, many users desired to connect a keyboard, mouse, and modem to their PC. The PC architecture expanded to provide standard mouse and keyboard ports, freeing up the two serial ports for other devices. Commonly, a modem was connected to one of the serial ports. Often the other port was used for a PC-to-PC “null modem” connection, allowing two PCs to communicate before the popularity of Local Area Network (LAN) Network Interface Cards (NICs) made inter-system communication widely available. Because these two ports have been available for many years, many peripheral devices were designed to connect and communicate with a personal computer via one of these ports. Significant investments have been made in acquiring a wide range of computer peripheral devices that connect to personal computers through an RS-232 serial port.
The hardware portion of the traditional RS-232 serial port was generally provided by an inexpensive 16550A Universal Asynchronous Transmitter/Receiver (UART), either in a standalone package or as part of another Application Specific Integrated Circuit (ASIC). The software portion of the traditional RS-232 port provided visibility to system software as a COM port. For years, all IBM-compatible PCs and derivatives have provided COM1 and COM2 as standard RS-232 ports. The PC BIOS (Basic Input/Output System), which is a read-only memory (ROM) inside the PC that contains essential routines and data for system startup and system configuration, provides the location of these hardware ports to software programmers starting at physical memory offset 40:0. System software detects the presence and location of these serial ports by examining these physical memory locations. From this information, communication with external serial devices via these ports can occur.
In addition to using a serial port for peripheral devices, a rare but critical use of a serial port is for software debugging and diagnostic purposes. To minimize system disruption by diagnostic aides, many operating systems provide a very low-level debugging capability. Operation and status of critical system software, such as operating systems, file systems, device drivers, etc., cannot easily be viewed, as the personal computer's video display and keyboard are reserved for user applications. Instead, a method for independently querying system operation and status is provided via an alternate input/output vehicle; a software engineer can gain access to the internal workings of the operating system via a PC-to-PC null-modem cable connected to a serial port. Standard serial ports were ideal for software debugging because of their ubiquity and the basic port I/O interface.
As the use of computers expanded, more computers, peripheral devices, and users made increasing demands on the two standard serial ports. As demand exceeded the capabilities of the initial serial port design, new protocols were developed to handle the increased needs. The development of LAN technology displaced the use of serial ports for PC-to-PC communication. Later, the Universal Serial Bus (USB) protocol was developed to handle peripherals. The USB protocol has many desirable features, such as hot attach and detach, automatic peripheral detection and identification, higher bit rates, and increased capacity for simultaneously connected devices.
The advent of USB devices has prompted system providers to discourage the use of, and even the presence of, traditional serial ports on the personal computer in favor of USB devices. USB Implementers Forum, Inc. (USB-IF) is a non-profit corporation founded by the group of companies that developed the USB specification. The USB-IF was formed to provide a support organization and forum for the advancement and adoption of Universal Serial Bus technology. The Forum facilitates the development of high-quality compatible USB peripherals and devices and promotes the benefits of USB and the quality of products that have passed compliance testing.
In an ongoing effort to make personal computers less expensive and easier to use, a new class of “legacy-free” machines has been introduced. One requirement of these machines is that peripheral devices be attached to the computer via the Universal Serial Bus. To enforce this requirement, these machines do not provide traditional RS-232 serial communication ports. Several recently produced legacy-free personal computers adhere to recommendations of the PC System Design Guide and no longer provide traditional RS-232 serial port interfaces. For example, both the IBM® Net Vista S40, available from International Business Machines Corporation, and the Compaq® iPaq Legacy Free model, available from Compaq Computer Corporation, do not provide traditional serial ports. It is anticipated that many other personal computer models will likewise no longer provide traditional serial ports.
Legacy-free machines are designed to be low-cost and easy to use, but evolving PC standards occasionally inconvenience users. This is the case with new legacy-free machines which do not provide access to a serial port. Most legacy-free machines include a USB keyboard and mouse, so there is generally no need to connect traditional non-USB keyboard and mouse peripherals. However, older devices, i.e., “legacy” devices, which use the RS-232 serial port interface, such as a mouse, keyboard, modem, joystick, tablet, MIDI devices, etc., can no longer be directly attached to the computer. Instead, the computer user is either expected to replace all these legacy devices with new USB devices, or the user may purchase a USB-to-serial adapter that converts the USB protocol back to the traditional RS-232 protocol. This “designed obsolescence” imposes a financial and logistical burden on users with RS-232 devices.
Even if a computer user decides to replace these legacy devices with new USB devices, some of these legacy devices are not available in new USB versions. Even if a corresponding USB device is available, a new device must be purchased while the previously used device must be recycled or discarded. New USB devices require software support on the desired operating system platform, which may not be available. Although USB devices can be easy-to-use when functioning as designed, there may be problems when certain USB devices do not conform to expected specifications or are not properly supported by software. In some cases, the USB device cannot be recognized and used by the computer.
As noted above, another strategy is to continue using existing serial devices by adding serial port support to a USB-only system. USB-to-serial adapters, sometimes called “dongles”, are available; the adapter provides one USB connector and one or more serial connectors. With appropriately tested and working software for the desired platform, this device provides serial port connections for USB-only computers. Similarly, some USB hubs, whose primary function is to provide additional USB ports, provide a serial port as well.
A non-USB option would be to insert a serial port card into the computer's motherboard. The specifications for legacy-free computers allow PCI-type card connectors, so only PCI-type serial port cards would connect to a legacy-free device's motherboard while older serial port cards, such as ISA-type cards, would not connect. Unfortunately, most legacy-free machines are constructed to be inexpensive, so most legacy-free machines do not have a PCI card slot, and it is not possible to add a PCI-type serial port card.
Clearly, any attempt to use existing serial devices with a legacy-free machine incurs expenses in money and time—both engineering and administrative time. Therefore, it would be advantageous for a method and/or apparatus to provide at least one general-purpose serial port on a legacy-free machine so that a user may have the benefit of continuing to use existing serial-communication-type peripheral devices with a legacy-free machine without resorting to the above-mentioned options, such as USB adapters.